package com.xiangpq.pattern.structuralPatterns.proxyPattern.dynamicProxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

/**
 * @author XPQ
 * @function
 * @since 2024-03-31
 */
public class ShopApplicationAgent2 {
    public static void main(String[] args) {
        try {
            // 创建目标对象
            UsbKingFactory target = new UsbKingFactory();
            // 创建调用处理器
            InvocationHandler handler = new ProcessSell(target);
            // 创建jdk动态代理对象
            UsbSell taobao = (UsbSell) Proxy.newProxyInstance(
                    target.getClass().getClassLoader(),
                    target.getClass().getInterfaces(),
                    handler);
            // 通过代理对象执行业务方法，实现利润增加
            float price = taobao.sell(2);
            System.out.println("taobao购买价格price：" + price);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("购买失败");
        }
    }
}
